package com.xq.algorithm.array;

/**
 * @author jltxseo
 *         Created by junlintianxia on 2017/07/14.
 */

public class TwoDimenArrayAlgorithm {

    /**
     * https://github.com/helen-x/AndroidInterview/blob/master/algorithm/swordForOffer/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E6%9F%A5%E6%89%BE.md
     * @param ary
     * @param target
     * @return
     * 在一个二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。
     * 请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。
     * 解题思路：
     * 先确定二维数组的行数和列数，把 查找值 与 二叉查找树的根节点（Ｂ或者　Ｃ）开始比较，如果相等返回true，小于查找左子树，大于就查找右子树。
     * 如果遍历超过数组边界，就返回 false。
     */
    public static boolean Find4TwoDimenArray(int[][] ary,int target){
        if(ary == null)return false;

        int i = ary.length - 1; //行数
        int m = ary[0].length - 1; //列数
        int j = 0;
        while(i >=0 && j <= m){
            if(target == ary[i][j]){
                return true;
            }else if (target > ary[i][j]){
                j++;
            }else {
                i--;
            }
        }
        return false;
    }


}
